Prisma를 버리고 TypeORM 또는 Drizzle 같은 ORM으로 갈아타야 할 이유가 생겼다.
Migration Lesson: Don't Use Prisma | Prime Reacts
Prisma는 SQL과 끔찍한 상극을 보인다. (MongoDB는 아직 잘 모르겠음) 데이터베이스 JOIN을 안하고 자체 Rust 엔진에서 직접 Cartesian Product를 수행한다는 점, FK 제약조건을 에뮬레이트 한다는 점(이것에 무슨 문제를 일으킬지는 생각해 보아야 한다), DB와 Rust 엔진 사이에 항상 GraphQL 프로토콜로 통신한다는 점(심지어 DB가 로컬에 있을지라도..!). 이것들이 Prisma의 대표적인 병목현상으로 지적을 많이 받는다. DB 마이그레이션 플랜을 짤 때 ORM도 고려해보아야 하는 사항이다.
ORM 선택을 위한 판단의 기준
2025-03-22 edited
이건 좀 더 생각해봐야 할 문제가 되었다. prisma가 버전업이 되면서 기존의 Rust 엔진이 직접 조인하던 걸 쿼리문으로 바꿨기 때문에 SQL에서의 성능향상이 이루어졌기 때문이다. 그럼에도 불구하고 쿼리문을 미리 뽑아볼 수 없다면 과감히 Prisma를 버려야 한다. 예측불가능한 코드에 의존할 수는 없는터.